\section{程式對象}

一個 OpenCL \cnglo{program}由一組\cnglo{kernel}組成，
而這些\cnglo{kernel}就是\cnglo{program}源碼中以限定符 \cqlf{__kernel} 聲明的函式。
\cqlf{__kernel} 函式可能會用到一些輔助函式以及常量數據，他們也是\cnglo{program}的一部分。
OpenCL 編譯器可以為相應的目標\cnglo{device}以{\ftEmp{在線}}（{\ftEmp{online}}）
或{\ftEmp{離線}}（{\ftEmp{offline}}）的方式生成\cnglo{program}執行體。

一個\cnglo{programobj}封裝了以下資訊：
\startigBase
\item 所關聯的\cnglo{context}；
\item \cnglo{program}源碼或二元碼；
\item 最近成功構建的\cnglo{program}執行體、庫或編譯過的二元碼，
他們所針對的\cnglo{device}清單，以及所使用的構建選項和構建日誌；
\item 附着其上的\cnglo{kernelobj}的數目。
\stopigBase

\input{chapter_rt/sec_program/create.tex}
\input{chapter_rt/sec_program/build.tex}
\input{chapter_rt/sec_program/sepCL.tex}
\input{chapter_rt/sec_program/compilerOption.tex}
\input{chapter_rt/sec_program/linkerOption.tex}
\input{chapter_rt/sec_program/unloadCompiler.tex}
\input{chapter_rt/sec_program/query.tex}
